SSMSからSQL Serverのデータベースをリストアする
状況
試した環境
手順
2. オブジェクトエクスプローラーを開く
パターン1(こっちの方がいいかも)
接続先 > データベースを右クリック後、データベースの復元で一から設定する
パターン2
接続先 > データベース > 復元元のデータベース(FROM)を右クリック
復元「元」
例えば、「本番環境のDBを元に開発環境のDB…」という場合は「本番環境」で右クリック
タスク > 復元 > データベース
3. データベースの復元(パターン1)あるいは、データベース(パターン2)選択後、以下のように選択していく(触るところだけピックアップ) ページの選択
全般
ソース
データベース
復元元(FROM)「完全バックアップをとったデータベース」を指定する
データベースを選択したとき、なんかめちゃくちゃ重いことがある…
同じ環境では再現する(2020/08/26)
転送先
データベース
復元先(TO)を指定する
ファイル
特に触らない
オプション
復元オプション
今回はチェックする
これ絶対に上書くという場合以外チェック入れなくていいかも
そのまま(チェックなしのはず)
そのまま(チェックなしのはず)
復旧状態
デフォルトのまま
ログ末尾のバックアップ
チェックを外す
チェックを外す
今あるデータをリストアするだけならなしでいい
これをチェックするとリストア中のまま一回止まる
まだリストアするものがあるとして止まっている
ちゃんと設定しないと意図したリストア動作にならないのでちゃんと読む
試行錯誤した手順
2. オブジェクトエクスプローラーを開く
パターン1(こっちの方がいいかも)
接続先 > データベースを右クリック後、データベースの復元で一から設定する
パターン2
接続先 > データベース > 復元元のデータベース(FROM)を右クリック
復元「元」
例えば、「本番環境のDBを元に開発環境のDB…」という場合は「本番環境」で右クリック
タスク > 復元 > データベース
3. データベースの復元(パターン1)あるいは、データベース(パターン2)選択後、以下のように選択していく(触るところだけピックアップ) ページの選択
全般
ソース
データベース
復元元(FROM)「完全バックアップをとったデータベース」を指定する
データベースを選択したとき、なんかめちゃくちゃ重いことがある…
同じ環境では再現する(2020/08/26)
転送先
データベース
復元先(TO)を指定する
ファイル
特に触らない
オプション
復元オプション
今回はチェックする
これ絶対に上書くという場合以外チェック入れなくていいかも
そのまま(チェックなしのはず)
そのまま(チェックなしのはず)
復旧状態
デフォルトのまま
ログ末尾のバックアップ
チェックを外す
チェックを外す
今あるデータをリストアするだけならなしでいい
これをチェックするとリストア中のまま一回止まる
まだリストアするものがあるとして止まっている
ちゃんと設定しないと意図したリストア動作にならないのでちゃんと読む
上記の設定で組んだクエリをスクリプトとして出力した結果
にわかっていることをコメントしている
code:sql
-- 1/3 完全バックアップのリストア
FROM
DISK = N'C:\Backup\SampleDB_backup_2023_01_02_xxxxxx_yyyyyy0.bak'
WITH FILE = 1
, MOVE N'SampleDB' TO N'C:\DATA\SampleDB_dev.mdf'
, MOVE N'SampleDB_log' TO N'C:\DATA\SampleDB_dev_log.ldf'
, NORECOVERY , NOUNLOAD , REPLACE , STATS = 5
-- 2/3 差分バックアップのリストア
FROM
DISK = N'C:\Backup\SampleDB_backup_2023_01_03_xxxxxx_yyyyyy1.bak'
WITH FILE = 1 , NORECOVERY , NOUNLOAD , STATS = 5
-- 3/3 以下、トランザクションログのリストア
FROM
DISK = N'C:\Backup\SampleDB_backup_2023_01_03_xxxxxx_yyyyyy2.trn'
WITH FILE = 1 , NORECOVERY , NOUNLOAD , STATS = 5
FROM
DISK = N'C:\Backup\SampleDB_backup_2023_01_03_xxxxxx_yyyyyy3.trn'
WITH FILE = 1 , NORECOVERY , NOUNLOAD , STATS = 5
FROM
DISK = N'C:\Backup\SampleDB_backup_2023_01_03_xxxxxx_yyyyyy4.trn'
WITH FILE = 1 , NORECOVERY , NOUNLOAD , STATS = 5
--(略)
FROM
DISK = N'C:\Backup\SampleDB_backup_2023_01_03_xxxxxx_yyyyyy8.trn'
WITH FILE = 1 , NORECOVERY , NOUNLOAD , STATS = 5
FROM
DISK = N'C:\Backup\SampleDB_backup_2023_01_03_xxxxxx_yyyyyy9.trn'
WITH FILE = 1 , NOUNLOAD , STATS = 5
GO
1/3 完全バックアップのリストア
完全バックアップファイルを基準にmdfとldfを作っている
2/3 差分バックアップのリストア
3/3 以下、トランザクションログのリストア
適用の順番も揃えてくれる
最後のRESTOREコマンドにはNORECOVERYオプションなし
C:\Backup\直下のバックアップファイル一覧からこれらのファイルをこの順番でリストアップするにはどうすればいいの?
復元元のデータベースを右クリックで復元ダイアログ表示した時点で表示される「復元するバックアップセット」を知りたい
わからない
バックアップファイル一覧から欲しいファイルを一から見つけられない
一番やりたいのは「今複製したい」で必要なファイルを選んでリストア
よくわからん
完全復旧モデル/一括ログ復旧モデルでデータベースを復旧する前にはトランザクションログが必要
別のインスタンスからデータベースを復元するにはメタデータも必要
暗号化されたデータベースを復元するには証明書や非対称キーが必要
古いバージョンのデータベースを復元するとデータベースは自動アップグレードされる
今回は、暗号化されていない/同一インスタンスから復元する場合
トランザクションログが必要
実行する前にプロセスの確認
オプションで全セッションを切断することもできる
成功したが、原理がわからん
差分はまとめて選択したらダメなんだっけ
FROMに上書きしようとしてる?よくわからん
他のエラーメッセージ
さらに他
履歴
見た(2024/10/18)(2024/11/01)(2024/11/29)